What order does ISO standard follow? (e.g. year to second, second to
year…) What is the minimum number of digits you can have in a year? Why
is this? What clock system do the times use? How many time formats does
ISO standard have? What timezone are time and dates automatically
represented in? How are combined date-times represented?
Answer 1-Date and time values are ordered from the largest to
smallest unit of time: year, month (or week), day, hour, minute, second,
and fraction of second.
2-ISO 8601 prescribes, as a minimum, a four-digit year [YYYY]. This
is to make sure that, for example, the year the year 1945 isn’t confused
with the year 2045.
3-ISO 8601 uses the 24-hour clock system.
4-Four. You can have - hh:mm:ss.sss , hh:mm:ss, hh:mm, hh
5-Time zones are automatically represented in local time as UTC
(coordinated universal time, GMT).
6-You use the letter T as a delimiter, e.g. “2007-04-05T14:30”
unclass(as.Date('2022-01-01'))
[1] 18993
posix = start at 1970-01-01 00:00:00
unclass(date_time1)
[1] 1577836800
attr(,"tzone")
[1] ""
date_time2 <- as.POSIXlt('2020-01-01 00:00:00')
date_time2
[1] "2020-01-01 GMT"
unclass(date_time2)
$sec
[1] 0
$min
[1] 0
$hour
[1] 0
$mday
[1] 1
$mon
[1] 0
$year
[1] 120
$wday
[1] 3
$yday
[1] 0
$isdst
[1] 0
$zone
[1] "GMT"
$gmtoff
[1] NA
date_time2$mday
[1] 1
library(tidyverse)
Registered S3 methods overwritten by 'dbplyr':
method from
print.tbl_lazy
print.tbl_sql
── Attaching packages ──────────────────────────────────── tidyverse 1.3.2 ──✔ ggplot2 3.3.6 ✔ purrr 0.3.4
✔ tibble 3.1.8 ✔ dplyr 1.0.9
✔ tidyr 1.2.0 ✔ stringr 1.4.0
✔ readr 2.1.2 ✔ forcats 0.5.1── Conflicts ─────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
library(lubridate)
Attaching package: ‘lubridate’
The following objects are masked from ‘package:base’:
date, intersect, setdiff, union
col type on r as: Date : ‘’ time: ‘’ date-time :
‘’
class(ymd('2019-01-19'))
[1] "Date"
mdy('January 9th, 2019')
[1] "2019-01-09"
dmy('9-Jan-2019')
[1] "2019-01-09"
ymd_hms('2019-01-19 10:08:26')
[1] "2019-01-19 10:08:26 UTC"
ymd_hm('2019-01-19 10:08')
[1] "2019-01-19 10:08:00 UTC"
ymd_h('2019-01-19 10')
[1] "2019-01-19 10:00:00 UTC"
netflix<- netflix %>%
mutate(date_added = mdy(date_added))
netflix
netflix<- netflix %>%
mutate(week_days = wday(date_added))
difftime: a dartetime obkect that represents days period: represent a
timespan like week/ month/ day duration : represent an exact number of
seconds
netflix <- netflix %>%
mutate(promo_date = date_added - weeks(2),
removal_date = date_added + months(4))
netflix %>%
select(date_added, promo_date, removal_date)
as period can do “weeks/years”
duration gives seconds
ymd(20200110) + years(1)
[1] "2021-01-10"
ymd(20200110) + dyears(1)
[1] "2021-01-09 06:00:00 UTC"
##understanding timezone
Sys.timezone()
[1] "Europe/London"
OlsonNames()
#timezone names ^
ymd_hms('20230913 10:22:01', tz = "Atlantic/Faeroe")
[1] "2023-09-13 10:22:01 WEST"
netflix %>%
mutate(date_tz_1 = force_tz(date_added, tzone = 'Asia/Singapore'),
date_tz_2 = with_tz(date_added, tzone = 'Asia/Singapore')) %>%
select(date_added, date_tz_1, date_tz_2)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKV2hhdCBvcmRlciBkb2VzIElTTyBzdGFuZGFyZCBmb2xsb3c/IChlLmcuIHllYXIgdG8gc2Vjb25kLCBzZWNvbmQgdG8geWVhcuKApikKV2hhdCBpcyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIHlvdSBjYW4gaGF2ZSBpbiBhIHllYXI/IFdoeSBpcyB0aGlzPwpXaGF0IGNsb2NrIHN5c3RlbSBkbyB0aGUgdGltZXMgdXNlPwpIb3cgbWFueSB0aW1lIGZvcm1hdHMgZG9lcyBJU08gc3RhbmRhcmQgaGF2ZT8KV2hhdCB0aW1lem9uZSBhcmUgdGltZSBhbmQgZGF0ZXMgYXV0b21hdGljYWxseSByZXByZXNlbnRlZCBpbj8KSG93IGFyZSBjb21iaW5lZCBkYXRlLXRpbWVzIHJlcHJlc2VudGVkPwoKQW5zd2VyCjEtRGF0ZSBhbmQgdGltZSB2YWx1ZXMgYXJlIG9yZGVyZWQgZnJvbSB0aGUgbGFyZ2VzdCB0byBzbWFsbGVzdCB1bml0IG9mIHRpbWU6IHllYXIsIG1vbnRoIChvciB3ZWVrKSwgZGF5LCBob3VyLCBtaW51dGUsIHNlY29uZCwgYW5kIGZyYWN0aW9uIG9mIHNlY29uZC4KCjItSVNPIDg2MDEgcHJlc2NyaWJlcywgYXMgYSBtaW5pbXVtLCBhIGZvdXItZGlnaXQgeWVhciBbWVlZWV0uIFRoaXMgaXMgdG8gbWFrZSBzdXJlIHRoYXQsIGZvciBleGFtcGxlLCB0aGUgeWVhciB0aGUgeWVhciAxOTQ1IGlzbuKAmXQgY29uZnVzZWQgd2l0aCB0aGUgeWVhciAyMDQ1LgoKMy1JU08gODYwMSB1c2VzIHRoZSAyNC1ob3VyIGNsb2NrIHN5c3RlbS4KCjQtRm91ci4gWW91IGNhbiBoYXZlIC0gaGg6bW06c3Muc3NzICwgaGg6bW06c3MsIGhoOm1tLCBoaAoKNS1UaW1lIHpvbmVzIGFyZSBhdXRvbWF0aWNhbGx5IHJlcHJlc2VudGVkIGluIGxvY2FsIHRpbWUgYXMgVVRDIChjb29yZGluYXRlZCB1bml2ZXJzYWwgdGltZSwgR01UKS4KCjYtWW91IHVzZSB0aGUgbGV0dGVyIFQgYXMgYSBkZWxpbWl0ZXIsIGUuZy4g4oCcMjAwNy0wNC0wNVQxNDozMOKAnQoKYGBge3J9CnN0cihhcy5EYXRlKCcyMDIyLTA4LTIxJykpCnVuY2xhc3MoYXMuRGF0ZSgnMjAyMi0wMS0wMScpKQoKCigzOCozNjUgKyAxMiAqMzY2KQpgYGAKcG9zaXggPSBzdGFydCBhdCAxOTcwLTAxLTAxIDAwOjAwOjAwCgpgYGB7cn0KZGF0ZV90aW1lMSA8LSBhcy5QT1NJWGN0KCcyMDIwLTAxLTAxIDAwOjAwOjAwJykKZGF0ZV90aW1lMQp1bmNsYXNzKGRhdGVfdGltZTEpCmBgYApgYGB7cn0KZGF0ZV90aW1lMiA8LSBhcy5QT1NJWGx0KCcyMDIwLTAxLTAxIDAwOjAwOjAwJykKZGF0ZV90aW1lMgp1bmNsYXNzKGRhdGVfdGltZTIpCmBgYApgYGB7cn0KZGF0ZV90aW1lMiRtZGF5CmBgYApgYGB7cn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkobHVicmlkYXRlKQpgYGAKYGBge3J9Cm5ldGZsaXggPC0gcmVhZF9jc3YoImRhdGEvbmV0ZmxpeC5jc3YiKQpgYGAKY29sIHR5cGUgb24gciBhczoKRGF0ZSA6ICc8ZGF0ZT4nCnRpbWU6ICc8dGltZT4nCmRhdGUtdGltZSA6ICc8ZHR0bT4nCgpgYGB7cn0KJzIwMTktMDEtMTknCmNsYXNzKHltZCgnMjAxOS0wMS0xOScpKQpgYGAKCmBgYHtyfQptZHkoJ0phbnVhcnkgOXRoLCAyMDE5JykKYGBgCmBgYHtyfQpkbXkoJzktSmFuLTIwMTknKQpgYGAKYGBge3J9CnltZF9obXMoJzIwMTktMDEtMTkgMTA6MDg6MjYnKQp5bWRfaG0oJzIwMTktMDEtMTkgMTA6MDgnKQpgYGAKYGBge3J9CnltZF9oKCcyMDE5LTAxLTE5IDEwJykKYGBgCmBgYHtyfQpuZXRmbGl4PC0gbmV0ZmxpeCAlPiUgCiAgbXV0YXRlKGRhdGVfYWRkZWQgPSBtZHkoZGF0ZV9hZGRlZCkpCm5ldGZsaXgKYGBgCgpgYGB7cn0KbW9udGgobmV0ZmxpeCRkYXRlX2FkZGVkWzE6NV0sIGxhYmVsID0gVFJVRSwgYWJiciA9IEZBTFNFKQoKbmV0ZmxpeCA8LSBuZXRmbGl4ICU+JSAKICBtdXRhdGUoZGF5ID0gZGF5KGRhdGVfYWRkZWQpLAogICAgICAgICBtb250aCA9IG1vbnRoKGRhdGVfYWRkZWQsbGFiZWwgPSBUUlVFLCBhYmJyID0gRkFMU0UpLAogICAgICAgICB5ZWFyID0geWVhcihkYXRlX2FkZGVkKSkKbmV0ZmxpeApgYGAKCmBgYHtyfQpuZXRmbGl4PC0gbmV0ZmxpeCAlPiUgCiAgbXV0YXRlKHdlZWtfZGF5cyA9IHdkYXkoZGF0ZV9hZGRlZCkpCmBgYAoKZGlmZnRpbWU6IGEgZGFydGV0aW1lIG9ia2VjdCB0aGF0IHJlcHJlc2VudHMgZGF5cyAKcGVyaW9kOiByZXByZXNlbnQgIGEgdGltZXNwYW4gbGlrZSB3ZWVrLyBtb250aC8gZGF5IApkdXJhdGlvbiA6IHJlcHJlc2VudCBhbiBleGFjdCBudW1iZXIgb2Ygc2Vjb25kcyAKCmBgYHtyfQpuZXRmbGl4IDwtIG5ldGZsaXggJT4lIAogIG11dGF0ZSh0aW1lX2RpZmYgPSB0b2RheSgpIC0gZGF0ZV9hZGRlZCkKbmV0ZmxpeApgYGAKYGBge3J9Cm5ldGZsaXggPC0gbmV0ZmxpeCAlPiUgCiAgbXV0YXRlKHRpbWVfcGVyaW9kID0gYXMucGVyaW9kKHRvZGF5KCkgLSBkYXRlX2FkZGVkKSwKICAgICAgICAgdGltZV95ZWFycyA9IGFzLm51bWVyaWModGltZV9wZXJpb2QsICd5ZWFycycpLAogICAgICAgICB0aW1lX2hvdXJzID0gYXMubnVtZXJpYyh0aW1lX3BlcmlvZCwgJ2hvdXJzJykKICAgICAgICAgKQpuZXRmbGl4CmBgYApgYGB7cn0KbmV0ZmxpeCA8LSBuZXRmbGl4ICU+JSAKICBtdXRhdGUocHJvbW9fZGF0ZSA9IGRhdGVfYWRkZWQgLSB3ZWVrcygyKSwKICAgICAgICAgcmVtb3ZhbF9kYXRlID0gZGF0ZV9hZGRlZCArIG1vbnRocyg0KSkKCm5ldGZsaXggJT4lIAogIHNlbGVjdChkYXRlX2FkZGVkLCBwcm9tb19kYXRlLCByZW1vdmFsX2RhdGUpCmBgYAphcyBwZXJpb2QgY2FuIGRvICJ3ZWVrcy95ZWFycyIgCgpkdXJhdGlvbiBnaXZlcyBzZWNvbmRzIApgYGB7cn0KbmV0ZmxpeCA8LSBuZXRmbGl4ICU+JSAKICBtdXRhdGUodGltZV9kdXJhdGlvbiA9IGFzLmR1cmF0aW9uKHRvZGF5KCktZGF0ZV9hZGRlZCkpCm5ldGZsaXggJT4lIAogIHNlbGVjdChzdGFydHNfd2l0aCgndGltZScpKQpgYGAKYGBge3J9CnltZCgyMDIwMDExMCkgKyB5ZWFycygxKQp5bWQoMjAyMDAxMTApICsgZHllYXJzKDEpCmBgYAojI3VuZGVyc3RhbmRpbmcgIHRpbWV6b25lIAoKYGBge3J9ClN5cy50aW1lem9uZSgpCmBgYApgYGB7cn0KT2xzb25OYW1lcygpCiN0aW1lem9uZSBuYW1lcyBeCmBgYAoKYGBge3J9CnltZF9obXMoJzIwMjMwOTEzIDEwOjIyOjAxJywgdHogPSAiQXRsYW50aWMvRmFlcm9lIikKYGBgCmBgYHtyfQogbmV0ZmxpeCAlPiUKICBtdXRhdGUoZGF0ZV90el8xID0gZm9yY2VfdHooZGF0ZV9hZGRlZCwgdHpvbmUgPSAnQXNpYS9TaW5nYXBvcmUnKSwKICAgICAgICAgZGF0ZV90el8yID0gd2l0aF90eihkYXRlX2FkZGVkLCB0em9uZSA9ICdBc2lhL1NpbmdhcG9yZScpKSAlPiUgCiAgc2VsZWN0KGRhdGVfYWRkZWQsIGRhdGVfdHpfMSwgZGF0ZV90el8yKQpgYGAKCgoKCgo=